package com.yyfax.pay.third.facade.fuiou;

import com.yyfax.framework.common.OpResponse;
import com.yyfax.pay.order.model.domain.ProtocolBindingOrderDO;
import com.yyfax.pay.order.model.domain.ProtocolOrderDO;
import com.yyfax.pay.order.model.domain.ProtocolUntieOrderDO;
import com.yyfax.pay.order.model.po.UserPaymentPO;
import com.yyfax.pay.third.model.to.fuiou.ProtocolPayNotifyReq;
import com.yyfax.pay.vo.order.ProtocolCardQueryReq;

public interface ProtocolService {

    public OpResponse sendMessage(ProtocolBindingOrderDO protocolBindingOrderDO);

    public OpResponse bindProtocol(ProtocolBindingOrderDO protocolBindingOrderDO, String messageCode);

    public OpResponse Pay(ProtocolOrderDO protocolOrderDO, UserPaymentPO userPaymentPO);

    public OpResponse untieProtocol(ProtocolUntieOrderDO protocolUntieOrderDO, UserPaymentPO userPaymentPO);

    public OpResponse checkResult(ProtocolOrderDO protocolOrderDO);

    public OpResponse queryProtocol(ProtocolCardQueryReq protocolCardQueryReq, String mrechantCode, String userAuthId, UserPaymentPO userPaymentPO);

    public void handNotify(ProtocolPayNotifyReq req, ProtocolOrderDO po, UserPaymentPO userPaymentPO);
}
